package com.hotel.dao;

import com.hotel.entity.User;
import com.hotel.exception.EntityException;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

public interface UserDao {
    // 获取所有用户
    List<User> getUsers() throws SQLException;

    // 根据账号获取一个用户对象
    User getUserByAccount(String account) throws EntityException, SQLException;

    // 根据id获取一个用户对象
    User getUserById(String id) throws SQLException;

    // 根据前端传递的参数获取sql语句限定条件
    String getSearchSQL(Map<String, Object> map);

    // 根据搜索片段获取数据数量
    int getUserCount(String sqlPart) throws SQLException;

    // 根据完整限定条件加上分页获取用户集合
    List<User> getUserList(String sqlPart, Integer offset, Integer limit) throws SQLException;

    // 新增用户
    int addUser(User user) throws SQLException;

    // 修改用户，根据id查找并修改
    int updateUser(User user) throws SQLException;

    // 删除用户，根据id删除
    int deleteUser(String id) throws SQLException;
}
